1. Field of the Invention
The present invention relates to computer systems, and more specifically to ones having an advance configuration and power interface, or ACPI, operating system.
2. Background of the Related Art
The Advanced Configuration and Power Interface (ACPI) has been developed for power management in computer systems. The ACPI has been intended to replace earlier power management techniques, including both the plug-and-play (PnP) and the Advanced Power Management (APM), and has been said to virtually eliminate the need for a system Basic Input/Output System (BIOS) to configure a computer system. The ACPI operating system was thus planned to perform all of the functions previously performed by plug-and-play (PnP) and the Advanced Power Management (APM), reducing the system Basic Input Output System to a small collection of routines callable from the operating system.
With ACPI, it was determined to relegate to the operating system various functions that had previously been performed by the system Basic Input Output System or BIOS. Traditionally when power has been applied to a computer system, its Basic Input Output System executed immediately. The BIOS for the computer system typically resided in ROM or PROM (and was therefore difficult to modify) or in an Initial Program Load (IPL) device that could not be disabled.
The BIOS for the computer system has, so far as is known, included firmware that configured the computer system, and provided a variety of other functions. In addition to the computer system BIOS, there were often other, separate Basic Input Output Systems contained in the power management software techniques. In many PnP and APM systems, following the execution of the computer system BIOS, both a Plug-and-Play BIOS and an Advanced Power Management BIOS, each with related utilities, executed. The Plug-and-Play BIOS was separate from that of the computer system, and reconfigured the system either dynamically or statically to allow the operating system to initialize.
The Advanced Power Management controlled system power, including sleep states and power states. The Advanced Power Management BIOS was also separate from both that of the computer system BIOS and the PnP BIOS. ACPI has begun to replace both the Plug-and-Play BIOS and Advanced Power Management BIOS, and other system initialization functionality. This has been done by providing operating systems and a platform/device interface that can perform these tasks in a more centralized manner. However, to function properly, ACPI also required compliance of platform hardware. Thus, certain ACPI compatible hardware interface requirements have been imposed on computer manufacturers, so that all devices would he compatible with the ACPI compatible operating systems. Thus, from the perspective of the manufacturer, the ACPI specification may be considered as a hardware interface specification.
One of the most significant advances of ACPI has been the ability of the operating system to control system power states. Before ACPI, power management had been platform-specific, typically implemented in hardware or in the computer system BIOS code. ACPI has allowed portable, platform or independent operating systems to control hardware power states on a system-wide basis. ACPI defined a number of low-power states in which the operating system could place the computer system.
The ACPI specification required certain hardware components and extensions to facilitate the hardware interface. Typically an embedded microcontroller was one of these hardware components. This embedded microcontroller was in effect a stand-alone processor working hand-in-hand with the main processor of the computer system. One of the other additional hardware extensions necessary under the ACPI specification has been that of power-management registers. The power-management registers controlled the power state of the computer system. An ACPI-compatible operating system running on the processor of the computer system wrote instructions defining a power state for at least some of these registers. The ACPI compliant operating system controlled a variety of system-wide features, such as enabling and disabling interrupt sources, controlling the amount of power provided to various buses and devices, and restoring the computer system from low power states, such as sleep-mode and soft-off mode. For example, if the operating system desired to put the computer system in a sleep mode, the operating system wrote a xe2x80x9cprepare to sleepxe2x80x9d command to the registers. The operating system then issued an enable for certain of the registers. The issued enable set an appropriate enable bit corresponding to the register. When the xe2x80x9cprepare to sleepxe2x80x9d instruction was sent and the registers were enabled, the computer system transitioned to whatever low-power state the operating system commanded.
Unfortunately, even if the main processor was ACPI-compliant, the embedded processor might not be. With respect to the embedded controller, its state was that of the device in which it was embedded, not that of the computer system. Sleep states were not entered or exited with well defined synchronization of multiple processors, particularly since the embedded controller has, so far as is known, been connected to a xe2x80x9cgeneral purpose eventxe2x80x9d status register bit.
Briefly, the present invention provides a new and improved computer system to perform machine specific tasks before going to a low power state. The computer system has a host processor under control of an operating system, preferably one according to the advance configuration and power interface, or ACPI, allowing the operating state and at least one low power or sleep state. The computer system also has at least one device containing a microprocessor which normally runs independently of the host processor. When the host processor receives a command to transition to a low power state, the microcontroller is notified. The microcontroller can then also transition to the lower power state, or it may shut down. At this time, the system can perform custodial or housekeeping functions, causing devices in the system to save their present states. Thus, the host processor and microprocessor are synchronized. Also, on restart the computer system can return at a known state.